<?php

// HTTP 服务端
class HTTPServer
{
    private $http;

    public function __construct($port = 9511)
    {
        // 0.0.0.0 监听所有 IP
        $this->http = new Swoole\Http\Server('0.0.0.0', $port);
        // 设置参数
        $this->http->set([
            'enable_static_handler' => true,// 静态文件
            'document_root' => dirname(__DIR__) . '/static/',// 静态资源路径
        ]);
        // 监听事件
        $this->http->on('Request', [$this, 'onRequest']);
        // 启动服务
        $this->http->start();
    }

    /**
     * 服务端接收请求事件
     * @param mixed $request  请求对象, 包含请求相关信息, 如: GET/POST 请求数据
     * @param mixed $response 响应对象
     */
    public function onRequest($request, $response)
    {
        var_dump($request);
        if ($request->server['path_info'] == '/favicon.ico' || $request->server['request_uri'] == '/favicon.ico') {
            $response->end();
            return;
        }
        $response->header('Content-Type', 'text/html; charset=utf-8');
        $response->end('<h1>请求信息为: ' . json_encode($request) . '</h1>' . PHP_EOL);
    }
}